
package com.hlkj.pay.vo.order.req;
/*
 * Hlpay-Plus aggregate payment system.
 * Copyright (c) 2024-2025 Hlpay Team Copyright has the right of final interpretation.
 */

import com.hlkj.framework.common.valid.EnumValid;
import com.hlkj.framework.common.valid.ValidAmount;
import com.hlkj.pay.enums.PayEnums;
import com.hlkj.pay.vo.BaseReq;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;

/**
 * @author HlpayTeam
 * @date 2024/10/09 11:37
 */
@Data
public class QrOrderParamReq extends BaseReq {

    @Schema(description = "支付种类 1 微信 2 支付宝 3 云闪付 4 数字人民币 5 快捷 6 网银 ")
    @NotNull(message = "支付种类 不能为空")
    @EnumValid(value = PayEnums.PAY_TYPE.class, message = "支付种类 无效")
    private Integer payType;

    @Schema(description = "订单金额 单位元")
    @ValidAmount(message = "订单金额无效")
    private String amount;

    @Schema(description = "码牌编码 ")
    @NotEmpty(message = "码牌编码 不能为空")
    private String code;

    @Schema(description = "备注")
    @Length(max = 16)
    private String remark;

    @Schema(description = "支付方式 NATIVE- 扫码支付； SCAN- 反扫支付；JSAPI-微信JSAPI、支付宝JSAPI支付、银联JSAPI支付； SIMPLE-简易支付 MINI_APP-微信小程序支付、支付宝小程序支付 H5-h5 支付 APP-APP 支付")
    private String paySubType;
    @Schema(description = "authCode")
    private String authCode;
    @Schema(description = "appId")
    private String appId;
    @Schema(description = "openId")
    private String openId;
}
